Glyph-mask render buffer

ABSTRACT

Systems, methods, and computer readable media to improve the operation of a computer&#39;s display system are described. In general, techniques are disclosed for retaining glyph-mask information for text associated with a region that may be arbitrarily moved across a screen. More particularly, techniques disclosed herein utilize an additional off-screen buffer referred to as the glyph-mask buffer. The glyph-mask buffer coincides with an existing side buffer in extent, but is used only to retain anti-aliased glyph information (i.e., glyph-masks). When the side buffer&#39;s content is updated, the effect of that update on the region&#39;s text may be reflected in an update to the glyph-mask buffer. At display time, the region corresponding to the side buffer, and the text therein, may be properly rendered at any screen location by combining the screen&#39;s target display area (background), the side buffer and the glyph-mask buffer.

BACKGROUND

This disclosure relates generally to display systems. More particularly,but not by way of limitation, this disclosure relates to techniques forproperly rending text into a region of the display that may movearbitrarily from region to region on the display.

In some modern display systems an extra buffer (aka, a side buffer) maybe used to store material that can move from one region of a display toanother region (aka, dynamic material). When the material contained inthe side buffer is moved, the entire side buffer may be blended into thebackground of the second region. While this approach works well much ofthe time, it does not work well when text is part of the informationstored in the side buffer. To properly render text, it is necessary toknow what is behind the text. This is why input to a text renderpipeline includes the R (red), G (green), B (blue) and alpha(transparency) of each text character plus each character's RGBglyph-mask (i.e., 7 inputs). Side buffers have only 4 channels: R, G, Band alpha. As a result, once text is rendered into a side buffer it isno longer possible to render that text onto the screen properly as itsglyph-mask information is no longer available.

SUMMARY

The following summary is included in order to provide a basicunderstanding of some aspects and features of the claimed subjectmatter. This summary is not an extensive overview and as such it is notintended to particularly identify key or critical elements of theclaimed subject matter or to delineate the scope of the claimed subjectmatter. The sole purpose of this summary is to present some concepts ofthe claimed subject matter in a simplified form as a prelude to the moredetailed description that is presented below.

In one embodiment the disclosed concepts provide a method to properlyrender dynamic material that includes anti-aliased text. As used herein,dynamic material may be moved from one location or region on a displayscreen to another location or region. The phrase “anti-aliased text”means text that has a corresponding glyph-mask. Also as used herein,anti-aliased text may be considered properly rendered when the text'scorresponding glyph-mask is taken into account when rendering. Methodsin accordance with this disclosure include storing, in a first memory(e.g., an off-screen buffer memory), first information for display on adisplay unit, the display unit having a full display area, the firstmemory corresponding to a first region of the full display area, thefirst region corresponding to less than all of the display unit's fulldisplay area, wherein the first information includes color andtransparency content; storing, in a second memory (e.g., a secondoff-screen buffer memory), glyph-mask information (e.g., associated withanti-aliased text) of the first information, the second memory having asize equal to the first memory (in some embodiments, the first andsecond memories may have a 1:1 correspondence in pixels); detecting achange in location of the first region to a second region of the fulldisplay area, the second region having second information; updating thefirst information in the first memory to new information based on thefirst information, the second information and the glyph-maskinformation; and updating the glyph-mask information in the secondmemory by removing the glyph-mask information from the second memorywhen the glyph-mask information corresponds to opaque new information inthe first memory, and blending the glyph-mask information in the secondmemory with the new information when the glyph-mask informationcorresponds to translucent new information in the first memory. In oneor more other embodiments updating the first information comprisesblending the first information's color and transparency content withcolor and transparency information of the second information. In stillother embodiments the first and second memory may comprise off-screenmemory which itself can be backing memory for a compositing engine of anoperating system. In yet other embodiments, the various methodsdescribed herein may be embodied in computer executable program code orinstructions and stored in a non-transitory storage device. In yetanother embodiment, the method may be implemented in an electronicdevice having a display unit, memory and a compositing engine.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B show, in block diagram form, a display system inaccordance with one or more embodiments.

FIG. 2 shows, in block diagram form, an operating system in accordancewith one or more embodiments.

FIG. 3 shows, in flowchart form, a glyph-aware render operation inaccordance with one or more embodiments.

FIG. 4 shows, in block diagram form, part of a display system inaccordance with one or more embodiments.

FIG. 5 shows, in flowchart form, another glyph-aware render operation inaccordance with one or more embodiments.

FIG. 6 illustrates the contents of a side buffer/glyph-mask buffer pairin accordance with one or more embodiments.

FIG. 7 shows, in block diagram form, a computer system in accordancewith one or more embodiments.

FIG. 8 shows, in block diagram form, a multi-function electronic devicein accordance with one or more embodiments.

DETAILED DESCRIPTION

This disclosure pertains to systems, methods, and computer readablemedia to improve the operation of a computer's display system. Ingeneral, techniques are disclosed for retaining glyph-mask informationfor text associated with a region that may be arbitrarily moved across ascreen. More particularly, techniques disclosed herein utilize anadditional off-screen buffer referred to as the glyph-mask buffer. Theglyph-mask buffer coincides with an existing side buffer in extent, butis used only to retain anti-aliased glyph information (i.e.,glyph-masks). When the side buffer's content is updated, the effect ofthat update on the region's text may be reflected in an update to theglyph-mask buffer. At display time, the region corresponding to the sidebuffer, and the text therein, may be properly rendered at any screenlocation by combining the screen's target display area (background), theside buffer and the glyph-mask buffer.

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the disclosed concepts. As part of this description,some of this disclosure's drawings represent structures and devices inblock diagram form in order to avoid obscuring the novel aspects of thedisclosed concepts. In the interest of clarity, not all features of anactual implementation may be described. Further, as part of thisdescription, some of this disclosure's drawings may be provided in theform of flowcharts. The boxes in any particular flowchart may bepresented in a particular order. It should be understood however thatthe particular sequence of any given flowchart is used only to exemplifyone embodiment. In other embodiments, any of the various elementsdepicted in the flowchart may be deleted, or the illustrated sequence ofoperations may be performed in a different order, or even concurrently.In addition, other embodiments may include additional steps not depictedas part of the flowchart. Moreover, the language used in this disclosurehas been principally selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter, resort to the claims being necessary todetermine such inventive subject matter. Reference in this disclosure to“one embodiment” or to “an embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the disclosed subject matter,and multiple references to “one embodiment” or “an embodiment” shouldnot be understood as necessarily all referring to the same embodiment.

It will be appreciated that in the development of any actualimplementation (as in any software and/or hardware development project),numerous decisions must be made to achieve a developers' specific goals(e.g., compliance with system- and business-related constraints), andthat these goals may vary from one implementation to another. It willalso be appreciated that such development efforts might be complex andtime-consuming, but would nevertheless be a routine undertaking forthose of ordinary skill in the design and implementation of computerdisplay systems having the benefit of this disclosure.

Referring to FIG. 1A, display system 100 in accordance with one or moreembodiments includes display element or screen 105, side buffer 110,glyph-mask buffer 115, compositing engine 120 and frame buffer 125. Asshown, side buffer 110 is associated with region 130 of display screen105. During operation, the on-screen data representing region 130 may becopied into side buffer 110 and, should screen region 130 containcontent associated with anti-aliased text information (i.e., aglyph-mask), that information may be placed into glyph-mask buffer 115.Both side buffer 110 and glyph-mask buffer 115 are off-screen memoryused by compositing engine 125 to update frame buffer 125. Frame buffer125, in turn, contains a representation of what will be displayed onscreen 105. In some embodiments, compositing engine 120 may include oneor more graphics processing units (GPUs). In other embodiments,compositing engine may use custom-designed image pipeline hardware. Inyet other embodiments, compositing engine 120 may represent asoftware-based engine using one or more central processing units (CPUs).Referring to FIG. 1B, when region 130 is moved (arrow 135) to a newlocation on screen 105 (e.g., region 140), the content of side buffer110 may be blended with the content of region 140 taking into accountthe glyph-mask information contained in glyph-mask buffer 115. In thisway, regions that may be moved dynamically across a display screen andwhich include anti-aliased text, may be correctly rendered.

Another way to think about the side buffer/glyph-mask buffer system isas two planes of a single underlying memory. In this model, side buffer110 corresponds to the memory content's color plane and glyph-maskbuffer 115 corresponds to the memory content's glyph-mask plane. In oneembodiment, each pixel in the color plane (side buffer) may carry coloror chroma and transparency information. In the RGB color space thiscould be represented as (R, G, B, α), where “α” represents transparency.Similarly, each pixel in the glyph-mask plane (glyph-mask buffer)carries any glyph's color information. In the RGB color space this couldbe represented as (M_(R), M_(G), M_(B)). In the glyph-mask plane orbuffer, only glyph information is retained. That is, if a particularpixel in the color plane (side buffer) is not associated withanti-aliased text having a glyph-mask, that pixel's corresponding valuein the glyph-mask plane or buffer may be set to a value corresponding tofully transparent (or some other empty or nugatory value).

In some embodiments, compositing (or render) engine 120 may beimplemented as a function provided by the operating system (OS). One wayto represent an OS diagrammatically is as a number of separate layersstacked one atop the other as shown in FIG. 2. There, illustrative OS200 includes kernel layer 205, core layer 210, core services layer 215,media layer 220 and application layer 225 coupled to various hardwarecomponents 230. Kernel layer 205 is generally responsible for memorymanagement including cache and virtual memory (205A), interprocesscommunication (205B), task management and scheduling (205C), and supportfor drivers (205D) and a file system (205E). By way of example, and notby limitation, drivers 205D control specific hardware devices such asone or more central processing units (CPUs) 230A, one or more graphicsprocessing units (GPUs) 230B, one or more other computational units 230Csuch as a vector unit, network interface hardware 230D, one or morestorage devices 230E, one or more display units 230F, and other hardware230G. Core layer 210 provides low-level services related to hardware andnetworks. For example, core layer 210 may include functionality tosandbox applications (210A), access and use hardware vector units(210B), program use of parallel CPUs (or CPU cores) through, forexample, OpenCL® (210C) and dynamically detect and configure remotenetworks (210D). (OPENCL is a registered trademark of Apple Inc.) Coreservices layer 215 may provide essential services to applications whilehaving no direct bearing on the applications' user interface. Coreservices layer 215 may provide functionality to share content amongdifferent social networking services (215A), use cloud- or network-basedstorage (215B), eliminate file-system inconsistencies due to overlappingread and write operations from different processes (215C), andlocalization services for text and graphics (215D). Media layer 220 mayprovide services related to media processing including audio capture andplayback (220A), video capture and playback (220B), two- andthree-dimensional drawing (220C), animation (220D), and access to, andcontrol of, GPU hardware through, for example, Metal® and OpenGL® APIs(220E). (METAL is a registered trademark of Apple Inc. OPENGL is aregistered trademark of Silicon Graphics International Corporation.) Inone embodiment, compositing engine 120 could be implemented as part ofmedia layer 220. In another embodiment, compositing engine 120 could beimplemented through components or functions from multiple layers of theOS. Application layer 225 may be responsible for the appearance ofapplications and their responsiveness to user actions. Accordingly,application layer 225 may provide the following functionality: aconsistent user experience for sharing content among different types ofservices (225A) such as between a photo management application and anemail application; pop-over windows (225B); software configurationmanagement (225C) through, for example, p-lists; system accessibilitythrough assistive technologies that help users with special needs(225D); and ink services for programmatic handwriting recognition andthe direct manipulation of text by means of gestures (225E). Thick linesbetween each layer represent application programming interfaces (APIs)and/or system programming interfaces (SPIs). The difference between anAPI and an SPI is often one of access or privilege. APIs are typicallypublished. That is, they are public so that application developers mayuse the features and functions associated with the API. SPIs are mostoften not made available to the public. Instead, SPIs are used bycomponents of the OS itself for inter-component (or layer)communication.

Referring to FIG. 3, render operation 300 in accordance with one or moreembodiments may be triggered when a designated region of the displayarea (e.g., region 130) is detected to have moved (e.g., to region 140)(block 305). A test may then be made to determine if either region(e.g., 130 or 140) includes anti-aliased text (block 310); text havingan associated glyph-mask. If no glyph-mask information is present (the“NO” prong of block 310), the source region (e.g., 130) and destinationregion (e.g., 140) may be blended in accordance with any suitable knowntechnique (block 315). If either the source or destination regionsinclude text having a glyph-mask (the “YES” prong of block 310), theglyph information is taken into account when combining or blending thetwo regions (block 320).

Before discussing the details of one implementation of a glyph-awarerendering operation, it may be helpful to take a closer look at certainaspects of display system 100. Referring to FIG. 4, in one or moreembodiments side buffer 110 and glyph-mask buffer 115 are shown having a1:1 pixel correspondence. That is, each pixel in side buffer 110 has acorresponding pixel in glyph-mask buffer 115 and versa visa. Duringrender operations, corresponding pixels in the two buffers (e.g., pixels400 and 405) are operated on at the same time (denoted by dashed lines)by compositing engine 120, with the result being returned to theappropriate buffer and, perhaps, frame buffer 125. In some embodiments,side buffer 110 and glyph-mask buffer 115 may be system backing memoryfor compositing engine 120 which, as noted above, may be an OS providedfunction.

Referring to FIG. 5, glyph-aware render operation 500 in accordance withone or more embodiments may begin by selecting a first pixel in sidebuffer 110 and the corresponding pixel in glyph-mask buffer 115 (block505). If the selected glyph-mask buffer pixel is associated with aglyph-mask (the “NO” prong of block 510), a further check may be made todetermine if the selected side buffer pixel is transparent (block 515).If the selected side buffer pixel is not transparent (the “NO” prong ofblock 515), another check may be made to determine if the selected sidebuffer pixel is opaque (block 520). If the selected side buffer pixel isnot opaque (the “NO” prong of block 520), the selected glyph-mask pixelmay be updated based on the selected side buffer pixel's transparencyusing that transparency as a interpolation factor between full and emptymask (block 525). Another issue that may be addressed during actions inaccordance with block 525, is the case when glyph-masks overlap. Thiscan result, for example, due to a font's design or simply drawingoverlapping text. In such cases it has been found useful to take themaximum value of each pixel's mask value (on a per-channel basis). If atleast one pixel pair remains to be evaluated in the side/glyph-maskbuffer system (the “NO” prong of block 530), the next pixel from sidebuffer 110 and the corresponding pixel from glyph-mask buffer 115 may bechosen (block 535), where after glyph-aware render operation 500continues at block 510 (B). Returning to block 510, if the selectedglyph-mask pixel has no associated glyph-mask information (the “YES”prong of block 510), the selected side buffer pixel may be updated (withdisplay information) in any suitable manner (block 540), where afteroperation 500 continues at block 530 (A). Returning to block 515, if theselected side buffer pixel is transparent (the “YES” prong of block515), the selected glyph-mask pixel is fully retained in the glyph-maskbuffer (block 545), where after glyph-aware render operation 500continues at block 540 (C). Returning to block 520, if the selected sidebuffer pixel is opaque (the “YES” prong of block 520), the selectedglyph-mask pixel is fully removed (obliterated) from the glyph-maskbuffer (block 550), where after render operation 500 continues at block540 (C). Returning finally to block 530, if all side/glyph-mask bufferpixels have been evaluated (the “YES” prong of block 530), glyph-awarerender operation 500 is complete.

To see how various actions in accordance with render operation 500 mayeffect content in glyph-mask buffer 115, consider FIG. 6. As shown, sidebuffer 600 includes: first anti-aliased string 605 rendered fully ontransparent background 610; second string 615, some of which has beenrendered onto opaque region 620, some of which has been rendered ontotranslucent region 625, and some of which has been rendered ontotransparent background 610; and third string 630, some of which has beenrendered under or behind opaque region 620, some of which has beenrendered onto translucent region 625, and some of which has beenrendered onto transparent background 610.

Also shown is glyph-mask buffer 635 having fully retained firstglyph-mask 640 corresponding to first string 605 (see FIG. 5 sequence:505→510→515→545→540→530). Those portions of glyph-masks 645(corresponding to second string 615) and 650 (corresponding to thirdstring 630) corresponding to opaque region 620 in side buffer 600 areobliterated or removed 655 (see FIG. 5 sequence:505→510→515→520→550→540→530). Finally, those portions of glyph-masks 645and 650 corresponding to translucent region 625 in side buffer 600 havetheir intensity reduced (see FIG. 5 sequence: 505→510→515→520→525→530).

Referring to FIG. 7, the disclosed glyph-aware render operations may beperformed by representative computer system 700 (e.g., a general purposecomputer system such as a desktop, laptop, notebook or tablet computersystem). Computer system 700 may include processor element or module705, memory 710, one or more storage devices 715, graphics hardwareelement or module 720, device sensors 725, communication interfacemodule or circuit 730, user interface adapter 735 and display adapter740—all of which may be coupled via system bus, backplane, fabric ornetwork 745 which may be comprised of one or more switches or one ormore continuous (as shown) or discontinuous communication links.

Processor module 705 may include one or more processing units each ofwhich may include at least one central processing unit (CPU) and zero ormore graphics processing units (GPUs); each of which in turn may includeone or more processing cores. Each processing unit may be based onreduced instruction-set computer (RISC) or complex instruction-setcomputer (CISC) architectures or any other suitable architecture.Processor module 705 may be a single processor element, asystem-on-chip, an encapsulated collection of integrated circuits (ICs),or a collection of ICs affixed to one or more substrates. Memory 710 mayinclude one or more different types of media (typically solid-state)used by processor module 705 and graphics hardware 720. For example,memory 710 may include memory cache, read-only memory (ROM), and/orrandom access memory (RAM). Storage 715 may include one morenon-transitory storage mediums including, for example, magnetic disks(fixed, floppy, and removable) and tape, optical media such as CD-ROMsand digital video disks (DVDs), and semiconductor memory devices such asElectrically Programmable Read-Only Memory (EPROM), and ElectricallyErasable Programmable Read-Only Memory (EEPROM). Memory 710 and storage715 may be used to retain media (e.g., audio, image and video files),preference information, device profile information, computer programinstructions or code organized into one or more modules and written inany desired computer programming language, and any other suitable data.When executed by processor module 705 and/or graphics hardware 720 suchcomputer program code may implement one or more of the methods describedherein. Graphics hardware 720 may be special purpose computationalhardware for processing graphics and/or assisting processor module 705perform computational tasks. In one embodiment, graphics hardware 720may include one or more GPUs, and/or one or more programmable GPUs andeach such unit may include one or more processing cores. In anotherembodiment, graphics hardware 720 may include one or more customdesigned graphics engines or pipelines. Such engines or pipelines may bedriven, at least in part, through software or firmware. Device sensors725 may include, but need not be limited to, an optical activity sensor,an optical sensor array, an accelerometer, a sound sensor, a barometricsensor, a proximity sensor, an ambient light sensor, a vibration sensor,a gyroscopic sensor, a compass, a barometer, a magnetometer, athermistor, an electrostatic sensor, a temperature or heat sensor, apixel array and a momentum sensor. Communication interface 730 may beused to connect computer system 700 to one or more networks or otherdevices. Illustrative networks include, but are not limited to, a localnetwork such as a USB network, an organization's local area network, anda wide area network such as the Internet. Communication interface 730may use any suitable technology (e.g., wired or wireless) and protocol(e.g., Transmission Control Protocol (TCP), Internet Protocol (IP), UserDatagram Protocol (UDP), Internet Control Message Protocol (ICMP),Hypertext Transfer Protocol (HTTP), Post Office Protocol (POP), FileTransfer Protocol (FTP), and Internet Message Access Protocol (IMAP)).User interface adapter 735 may be used to connect microphone 745,speaker 750, keyboard 755, pointer device 760, and other user interfacedevices such as image capture device 765 or a touch-pad (not shown).Display adapter 740 may be used to connect one or more display units 770which may provide touch input capability.

Referring to FIG. 8, the disclosed render operations may also beperformed by representative mobile electronic device 800. Electronicdevice 800 could be, for example, a mobile telephone, a personal mediadevice or a tablet computer system. As shown, electronic device 800 mayinclude processor element or module 805, memory 810, one or more storagedevices 815, graphics hardware 820, device sensors 825, communicationinterface 830, display element 835 and associated user interface 840(e.g., for touch surface capability), image capture circuit or unit 845,one or more video codecs 850, one or more audio codecs 855, microphone860 and one or more speakers 865—all of which may be coupled via systembus, backplane, fabric or network 870. Processor element or module 805,memory 810, one or more storage devices 815, graphics hardware 820,device sensors 825, communication interface 830, display element 835 andassociated user interface 840 may be of the same or similar type andserve the same function as the similarly named component described abovewith respect to computer system 700. Output from an image capture unitelement or module may be processed, at least in part, by video codec 850and/or processor module 805 and/or graphics hardware 820, and/or adedicated image processing unit incorporated within image capture unit845. Images so captured may be stored in memory 810 and/or storage 815.Audio signals obtained via microphone 860 may be, at least partially,processed by audio codec 855. Data so captured may also be stored inmemory 810 and/or storage 815 and/or output through speakers 865.

It is to be understood that the above description is intended to beillustrative, and not restrictive. The material has been presented toenable any person skilled in the art to make and use the disclosedsubject matter as claimed and is provided in the context of particularembodiments, variations of which will be readily apparent to thoseskilled in the art (e.g., some of the disclosed embodiments may be usedin combination with each other). Accordingly, the specific arrangementof steps or actions shown in FIGS. 3 and 5 or the arrangement ofelements shown in FIGS. 1, 2, 4 and 6-8 should not be construed aslimiting the scope of the disclosed subject matter. The scope of theinvention therefore should be determined with reference to the appendedclaims, along with the full scope of equivalents to which such claimsare entitled. In the appended claims, the terms “including” and “inwhich” are used as the plain-English equivalents of the respective terms“comprising” and “wherein.”

The invention claimed is:
 1. A method for displaying content on adisplay unit, comprising: storing, in a first memory, first informationfor display on a display unit, the display unit having a full displayarea, the first memory corresponding to a first region of the fulldisplay area, the first region corresponding to less than all of thedisplay unit's full display area, wherein the first information includescolor and transparency content; storing, in a second memory, glyph-maskinformation of the first information, the second memory having a sizeequal to the first memory; detecting a change in location of the firstregion to a second region of the full display area, the second regionhaving second information; updating the first information in the firstmemory to new information based on the first information, the secondinformation and the glyph-mask information; and updating the glyph-maskinformation in the second memory by— removing the glyph-mask informationfrom the second memory when the glyph-mask information corresponds toopaque new information in the first memory, and blending the glyph-maskinformation in the second memory with the new information when theglyph-mask information corresponds to translucent new information in thefirst memory.
 2. The method of claim 1, wherein updating the secondinformation in the second memory further comprises retaining theglyph-mask information in the second memory when the glyph-maskinformation corresponds to transparent new information in the firstmemory.
 3. The method of claim 1, wherein storing first information in afirst memory further comprises determining the first informationincludes anti-aliased text information.
 4. The method of claim 3,wherein the glyph-mask information comprises the anti-aliased textinformation.
 5. The method of claim 1, wherein updating the firstinformation comprises blending the first information's color andtransparency content with color and transparency information of thesecond information.
 6. The method of claim 1, wherein the first andsecond memory comprise memory not directly displayed on the displayunit.
 7. The method of claim 6, wherein the first and second memorycomprise backing memory of a display system's compositing engine.
 8. Anon-transitory program storage device comprising instructions storedthereon to cause one or more processors to: store, in a first memory,first information for display on a display unit, the display unit havinga full display area, the first memory corresponding to a first region ofthe full display area and less than all of the display unit's fulldisplay area, wherein the first information includes color andtransparency content; store, in a second memory, glyph-mask informationof the first information, the second memory having a size equal to thefirst memory; detect a change in location of the first region to asecond region of the full display area, the second region having secondinformation; update the first information in the first memory to newinformation based on the first information, the second information andthe glyph-mask information; remove the glyph-mask information from thesecond memory when the glyph-mask information corresponds to opaque newinformation in the first memory; and blend the glyph-mask information inthe second memory with the new information when the glyph-maskinformation corresponds to translucent new information in the firstmemory.
 9. The non-transitory program storage device of claim 8, whereinfurther comprising instructions to retain the glyph-mask information inthe second memory when the glyph-mask information corresponds totransparent new information in the first memory.
 10. The non-transitoryprogram storage device of claim 8, wherein the instructions to storefirst information in a first memory further comprise instructions todetermine the first information includes anti-aliased text information.11. The non-transitory program storage device of claim 10, wherein theglyph-mask information comprises the anti-aliased text information. 12.The non-transitory program storage device of claim 8, wherein theinstructions to update the first information comprise instructions toblend the first information's color and transparency content with colorand transparency information of the second information.
 13. Thenon-transitory program storage device of claim 8, wherein the first andsecond memory comprise memory not directly displayed on the displayunit.
 14. The non-transitory program storage device of claim 13, whereinthe first and second memory comprise backing memory of a displaysystem's compositing engine.
 15. A system comprising: a display unithaving a full display area; memory operatively coupled to the displayunit; a compositing engine coupled to the memory; and one or moreprocessors operatively coupled to the display unit, the memory, and thecompositing engine, the one or more processors configured to executeinstructions stored in the memory to cause the system to— store, by thecompositing engine in a first buffer in the memory, first informationfor display on the display unit, the first buffer corresponding to afirst region of the full display area and less than all of the displayunit's full display area, wherein the first information includes colorand transparency content, store, by the compositing engine in a secondbuffer in the memory, glyph-mask information of the first information,the second buffer having a size equal to the first buffer, detect achange in location of the first region to a second region of the fulldisplay area, the second region having second information, update, bythe compositing engine, the first information in the first buffer to newinformation based on the first information, the second information andthe glyph-mask information, remove, by the compositing engine, theglyph-mask information from the second buffer when the glyph-maskinformation corresponds to opaque new information in the first buffer,and replace, by the compositing engine, the glyph-mask information inthe second buffer with a blend of the new information and the glyph-maskinformation when the glyph-mask information corresponds to translucentnew information in the first buffer.
 16. The system of claim 15, whereinthe instructions further comprise instructions to retain the glyph-maskinformation in the second buffer when the glyph-mask informationcorresponds to transparent new information in the first buffer.
 17. Thesystem of claim 15, wherein the instructions to store first informationin a first buffer further comprise instructions to determine the firstinformation includes anti-aliased text information.
 18. The system ofclaim 17, wherein the glyph-mask information comprises the anti-aliasedtext information.
 19. The system of claim 15, wherein the instructionsto update the first information comprise instructions to blend the firstinformation's color and transparency content with color and transparencyinformation of the second information.
 20. The system of claim 15,wherein the first and second buffers comprise memory not directlydisplayed on the display unit.
 21. The system of claim 20, wherein thefirst and second buffers comprise backing memory of the compositingengine, wherein the compositing engine is provided by an operatingsystem.